package icu.xuyijie.mysecondspringboot.config;

import icu.xuyijie.mysecondspringboot.interceptor.LoginInterceptor;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author 徐一杰
 * @date 2024/11/11 10:44
 * @description web 自定义配置
 */
@SpringBootConfiguration
public class MyWebConfig implements WebMvcConfigurer {

    /**
     * 静态资源映射
     * @param registry 映射关系
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/file/**").addResourceLocations("file:E:/uploadFiles/");
    }

    /**
     * 添加拦截器
     * @param registry 拦截器列表
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry
                // 注册 LoginInterceptor 到 springboot
                .addInterceptor(new LoginInterceptor())
                // 要拦截哪些路径，/** 代表拦截全部路径
                .addPathPatterns("/**")
                // 不拦截那些路径
                .excludePathPatterns(
                        // 登录界面
                        "/",
                        // 登录方法接口
                        "/user/login",
                        // 注册方法接口
                        "/user/register",
                        // resources/static 下面的 jpg 文件放行
                        "/*.jpg",
                        "/error",
                        "/file/**",
                        "/test/**",
                        "/favicon.ico"
                );
    }
}
